home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / lib2to3 / fixes / fix_set_literal.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  2.0 KB  |  39 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. '''
  5. Optional fixer to transform set() calls to set literals.
  6. '''
  7. from lib2to3 import fixer_base, pytree
  8. from lib2to3.fixer_util import token, syms
  9.  
  10. class FixSetLiteral(fixer_base.BaseFix):
  11.     explicit = True
  12.     PATTERN = "power< 'set' trailer< '('\n                     (atom=atom< '[' (items=listmaker< any ((',' any)* [',']) >\n                                |\n                                single=any) ']' >\n                     |\n                     atom< '(' items=testlist_gexp< any ((',' any)* [',']) > ')' >\n                     )\n                     ')' > >\n              "
  13.     
  14.     def transform(self, node, results):
  15.         single = results.get('single')
  16.         if single:
  17.             fake = pytree.Node(syms.listmaker, [
  18.                 single.clone()])
  19.             single.replace(fake)
  20.             items = fake
  21.         else:
  22.             items = results['items']
  23.         literal = [
  24.             pytree.Leaf(token.LBRACE, '{')]
  25.         literal.extend((lambda .0: for n in .0:
  26. n.clone())(items.children))
  27.         literal.append(pytree.Leaf(token.RBRACE, '}'))
  28.         literal[-1].set_prefix(items.get_next_sibling().get_prefix())
  29.         maker = pytree.Node(syms.dictsetmaker, literal)
  30.         maker.set_prefix(node.get_prefix())
  31.         if len(maker.children) == 4:
  32.             n = maker.children[2]
  33.             n.remove()
  34.             maker.children[-1].set_prefix(n.get_prefix())
  35.         
  36.         return maker
  37.  
  38.  
  39.